An autonomous network is a network comprising a number of communication links, routers, and other connection devices that are maintained and managed by a single organization or group for the purposes of connecting internal computer systems, or “endpoints.” Generally, a single routing protocol, referred to as an interior gateway protocol (“IGP”), may be implemented across the entire autonomous network. The IGP may consist of a distance-vector routing protocol, such as routing information protocol (“RIP”) or interior gateway routing protocol (“IGRP”), a link-state routing protocol, such as intermediate system to intermediate system (“IS-IS”) or open shortest path first (“OSPF”), or other routing protocol known in the art.
Each router in the autonomous network may maintain a routing table that contains a list of endpoints reachable through the router's immediate neighbors in the network, along with a metric, or “cost,” for each. The cost calculated for each path may be based on, individually or in combination, the number of network hops required to reach the endpoint, the bandwidth of the connecting link(s) in the path, the network delay between the router and the endpoint, a reliability factor for the link(s) in the path, and the like. When a data packet arrives at a router, the router may utilize the routing table to determine the lowest-cost path for reaching the destination endpoint, and forward the packet to the immediate neighbor along that path. Each router along the path forwards the data packet based on a similar determination of the lowest-cost path to the endpoint, until the packet arrives at the destination endpoint.
It will be appreciated that more than one “best path” to the destination endpoint may exist in the network, i.e. more than one path having the same cost. The IGP may further utilize equal-cost multi-path routing (“ECMP”) to select from among the multiple best paths over which to forward the data packet. The ECMP implementation may utilize a round-robin selection, a randomization function, or other mechanism to balance the network load across the paths, thus potentially increasing the available bandwidth of the network.
Transmitting packets between the same source and destination endpoints over different paths may cause problems in the operation of transport protocols that depend upon the order of the packets transmitted and received, such as transmission control protocol (“TCP”). To mitigate these potential problems, the ECMP implementation may utilize a flow-based deterministic algorithm for selecting from among the best paths for each data packet, such that packets within the same network flow utilize the same path across the network. However, in long-lived, high-bandwidth network flows between two endpoints, such flow-based deterministic algorithms may result in under-utilization of the available bandwidth of the autonomous network.
It is with respect to these and other considerations that the disclosure made herein is presented.